﻿// AnimatedButton.qaml
import QtQuick 2.15
import QtQuick.Controls 2.15

Item {
    id: root
    width: 120
    height: 40
    
    // 可配置属性
    property alias text: btnText.text   // 按钮文字
    property color normalColor: "#2d2d2d"  // 正常状态颜色
    property color hoverColor: "#3EB33B"    // 悬停状态颜色
    property color pressColor: "#3EB33B"    // 按下状态颜色
    property int borderRadius: 4           // 圆角半径
    
    // 点击信号
    signal clicked()
    
    // 背景矩形
    Rectangle {
        id: bg
        anchors.fill: parent
        radius: root.borderRadius
        color: mouseArea.pressed ? pressColor : 
               mouseArea.containsMouse ? hoverColor : normalColor
        
        // 颜色过渡动画
        Behavior on color {
            ColorAnimation { duration: 150 }
        }
        
        // 点击缩放动画
        scale: mouseArea.pressed ? 0.95 : 1.0
        Behavior on scale {
            NumberAnimation { duration: 100 }
        }
    }
    
    // 文字内容
    Text {
        id: btnText
        anchors.centerIn: parent
        color: "white"
        font.pixelSize: 14
    }
    
    // 鼠标交互区域
    MouseArea {
        id: mouseArea
        anchors.fill: parent
        hoverEnabled: true
        onClicked: {
            root.clicked()
        }
    }
}